#ifndef __DATASTRUCTURE_H
#define __DATASTRUCTURE_H

#include <vector>
#include "node.h"


template <class pointer>
class dataStructure
{
	public:
		virtual void addNode(Node* node) = 0;
		virtual bool empty() = 0;
		virtual void remove(pointer p) = 0;
		virtual void allocate(int width, int height) = 0;
		virtual void freeNodes() = 0;
		virtual Node* selectNodeLowestScore() = 0;
		virtual std::pair<pointer, Node*> findNode(int x, int y) = 0;
		virtual void modifyNode(pointer p) = 0;
};

#endif